/**   
*    
* @file
* @brief
*
* @<b>文件名</b>      : UserInfoParser
* @n@n<b>版权所有</b>: 网龙应用软件开发一部
* @n@n<b>作  者</b>  : Administrator
* @n@n<b>创建时间</b>: 2014-1-28 下午5:25:16 
* @n@n<b>文件描述</b>:  
* @version  
*/
package com.common.weibolib;
import org.json.JSONException;
import org.json.JSONObject;

import com.product.android.business.ApplicationVariable;
import com.starappallcommon.R;

/**
 * ClassName:UserInfoParser
 * Function: TODO ADD FUNCTION
 * Reason:	 TODO 网龙微博API(新版)
 * 
 * @author   chenqian		
 * @version  
 * @since    Ver 1.1
 * @Date	 2014	2014-1-28		下午5:25:16
 *
 * @see 	 
 */

public class UserInfoParser extends AbstractObjParser<UserInfo>{

	/**
	 * @n<b>函数名称</b>     :parse
	 * @brief
	 * @see
	 * @since    Ver 1.1
	 * @param  @param json
	 * @param  @return
	 * @param  @throws JSONException
	 * @<b>作者</b>          :  chenqian
	 * @<b>创建时间</b>      :  2014-1-28下午5:25:53      
	*/
	
	@Override
	public UserInfo parse(JSONObject json) throws JSONException {
		UserInfo userInfo = new UserInfo();
		String defaultName = ApplicationVariable.INSTANCE.applicationContext.getString(R.string.user_exist);
		if(json == null){
			userInfo.nickname = defaultName; 
		}
		else{
			userInfo.uid= json.optLong("uid");
			String nick = json.optString("nickname");
			// 没有昵称需要特殊处理
			if(nick == null || nick.equals("")) {
			    // 有uid的话用uid,否则默认
			    userInfo.nickname = userInfo.uid != 0 ? String.valueOf(userInfo.uid) : defaultName;
			} else {
			    userInfo.nickname = nick; 
			}
			userInfo.gender = json.optInt("gender", 0);
			
			//服务端有返回就用服务端，否则就直接从本地取
			if(json.has("sysavatar")){
			    userInfo.sysAvatarID = json.getInt("sysavatar");
			}
		}
		return userInfo;
	}

	/**
	 * @n<b>函数名称</b>     :toJSONObject
	 * @brief
	 * @see
	 * @since    Ver 1.1
	 * @param  @param t
	 * @param  @return
	 * @param  @throws JSONException
	 * @<b>作者</b>          :  chenqian
	 * @<b>创建时间</b>      :  2014-1-28下午5:25:53      
	*/
	
	@Override
	public JSONObject toJSONObject(UserInfo userInfo) throws JSONException {
		JSONObject json=new JSONObject();
		if(null == userInfo){
			return json;
		}
		json.put("uid",userInfo.uid);
		json.put("nickname",userInfo.nickname); 
		json.put("gender",userInfo.gender);
		json.put("sysavatar",userInfo.sysAvatarID);
		return json;
	}

}
